package dao;

import domain.User;

import java.util.List;
import java.util.Map;

/**
 * 用户操作的DAO
 *
 * @author Mc.Chai
 * @program: JavaWeb
 * @create 2022-03-31-21:20 21:20
 */
public interface UserDao {
    /**
     * 返回所有用户的信息
     * @return 用户信息的集合
     */
    List<User> findAll();
    /**
     * 查询该用户名和密码的用户，并返回查询到用户的信息
     *
     * @param username 用户名
     * @param password 密码
     * @return 该用户信息
     * */
    User findUserByUsernameAndPassword(String username, String password);
    /**
     * 添加用户数据
     * @param user 添加的用户
     * */
    void add(User user);
    /**
     * 删除当前行的用户数据
     *
     * @param id 表示删除用户的唯一标识
     * */
    void delete(int id);
    /**
     * 根据用户的id查询用户信息
     * @param id 用户的id
     * @return 返回查询用户的封装对象
     * */
    User findUserById(String id);
    /**
     * 修改用户的信息
     * @param user 修改后的用户信息
     * */
    void update(User user);
    /**
     * 按照页数和显示行数进行分页查找
     *
     * @param start
     * @param rows
     * @param condition
     * @return 返回记录数据的集合
     * */
    List<User> findByPage(int start, int rows, Map<String, String[]> condition);
    /**
     * 查询总的记录数
     * @return 返回总的记录数
     * @param condition*/
    int findTotalCount(Map<String, String[]> condition);
}
